package zwp.exercise.service.exercisedemo.chapterFour.PracticeAndExercises;

/**
 * @Author zwp14
 * @create 2025/11/28 21:05
 * @description 查找素数
 * 使用for循环判断1~100有多少个素数，并在控制台输出所有的素数
 * 素数是指大于1的自然数，且只能被1和它本身整除
 */
public class FiveExerciseDemo {
    public static void main(String[] args) {
        // 起始数字
        int startNum = 2;
        // 结束数字
        int endNum = 100;
        // 统计素数个数
        int countNum = 0;

        // 遍历2~100
        for (int i = startNum; i <= endNum; i++) {

            // 针对2，3，5，7直接跳过素数校验，其本身就是素数，方便执行后续业务逻辑
            switch (i) {
                case 2:
                case 7:
                case 3:
                case 5:
                    // 个数加1
                    countNum += 1;
                    System.out.println("得到第" + countNum + "个素数：" + i);
                    break;
                default:
            }
            // 已排除2，3，5，7，针对2，3，5，7之外的数，检查是否能被这四个大于1的最小素数整除，如果可以则不是素数
            if (((i % 2 == 0) || (i % 3 == 0) || (i % 5 == 0) || (i % 7 == 0))) {
                continue;
            }
            // 个数加1
            countNum += 1;
            System.out.println("得到第" + countNum + "个素数：" + i);
        }

        System.out.println("1~100之间总共有素数；" + countNum + "个。");
    }
}
